#ifndef MYENUMS_H
#define MYENUMS_H

enum { 	//hw dependent definitions
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
 RMASK = 0xff000000,
 GMASK = 0x00ff0000,
 BMASK = 0x0000ff00,
 AMASK = 0x000000ff,
#else
 RMASK = 0x000000ff,
 GMASK = 0x0000ff00,
 BMASK = 0x00ff0000,
 AMASK = 0xff000000,
#endif
};

//engine states
enum engineState {ES_QUIT,	ES_MENU,	ES_INTRO,	ES_GAME,	ES_SPECIAL_SCREEN};

//game states
enum gameState {GS_INIT, GS_NEXTLVL, GS_LVLFINISHED, GS_PLAY, GS_GAMEOVER,};

//button clip in menu
enum { CLIP_NEW = 1, CLIP_NEW_M , CLIP_LOAD , CLIP_LOAD_M, CLIP_EXIT, CLIP_EXIT_M };

////////////////////////-------------screen sizes
enum { 
	SCREEN_W = 800, 
	SCREEN_H = 600, 	
	SCREEN_BPP = 32,
	SCREEN_MOVE_OFFSET = 100,
	//sizes of surfaces used
	SKY_W = SCREEN_W, 
	SKY_X = 0, 
	SKY_Y = 0, 
	FIELD_W = SCREEN_W, 
	FIELD_H = 150, 
	FIELD_X = 0, 
	INFOBAR_W = SCREEN_W, 
	INFOBAR_H = 60,
	INFOBAR_X = 0, 
	INFOBAR_Y = SCREEN_H - INFOBAR_H,
	SKY_H = SCREEN_H - INFOBAR_H - FIELD_H,	
	FIELD_Y = SKY_H,
};
////////////////////////-----------------player
enum { 
	PLAYER_W = 70, 
	PLAYER_H =75,

	TIME_INTERVAL = 600, //player movement pause
	STANDARD_SHOT_PAUSE = 700, //player shooting pause
	STANDARD_PLAYER_LIFE = 10, //player logic variables
	STANDARD_PLAYER_MANA = 10, //player logic variables

	PM_MOVE_RIGHT = 0,
	PM_MOVE_LEFT = 1,
	PM_STAND = 2,
	PM_SHOOT = 3,
	PM_DIE = 4,

	MF_MOVEFRAMES = 7,
	MF_FRAMES = 8,
	MF_COUNT = 5,
};
////////////////////////-----------------shot
enum { //shot
	SHOT_H = 11,
	LAY_MAX_DURATION = 25000, //shot lay duration on the screen
	INITIAL_SHOT_SPEED = 50, //speed of shoot - initial

	//ShotType, OwnerType
	ST_STD_BOW = 0, 
	ST_FIRE_BOW = 1, 
	ST_ICE_BOW = 2, 
	ST_HIT = 3, 	
	//spell sheet
	ST_FIREBALL = 4, 
	ST_FROSTBALL = 5,
	ST_LIGHTBALL = 6,	
	//together
	ST_SHOT_COUNT = 4,
	ST_SPELL_COUNT = 3,
	//owner types for projectils
	OT_PLAYER = 0, 
	OT_ENEMY = 1, 
	OT_NOONE = 2, 

	//ShotState
 	SS_FLY = 0,
	//SS_EXPLODE = 1,
	SS_LAY = 2, 
 };
////////////////////////-----------------enemy
enum { 
	ENEMY_SPAWN_TIME = 5000, //time which it takes to spawn a new enemy

	//types of enemies, total number of types
	E_ROGUE = 0, 
	E_MAGE = 1, 
	E_NINJA = 2, 
	E_COUNT = 3,
	
	//types of enemy behaviours
	BH_SPELLCASTER = 0, 
	BH_FIGHTER = 1, 
	BH_FLEE = 2, 
	BH_COUNT = 3,

	EM_MOVE_RIGHT = 0,
	EM_MOVE_LEFT = 1,
	EM_STAND = 2, 
	EM_SHOOT = 3,
	EM_DIE = 4,
	EM_COUNT = 5,
};
#endif
